import { fileURLToPath, URL } from 'node:url';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import Pages from 'vite-plugin-pages';
import Layouts from 'vite-plugin-vue-layouts';

// 将 import.meta.url 转换为文件路径，以便设置别名
const srcPath = fileURLToPath(new URL('./src', import.meta.url));

export default defineConfig({
  plugins: [
    vue({
      template: {
        compilerOptions: {
          isCustomElement: tag => tag.startsWith('my-')
        }
      }
    }),
    vueJsx(),
    Pages({
      pagesDir: 'src/pages',
      // 可选：排除特定模式的文件或目录
    }),
    Layouts({
      layoutsDirs: 'src/layouts',
    }),
  ],
  resolve: {
    alias: {
      // 配置 '@' 别名指向 src 目录
      '@': srcPath,
      // 确保使用包含编译器的Vue版本
      'vue': 'vue/dist/vue.esm-bundler.js'
    },
  },
  server: {
    proxy: {
      '/api': {
        target: 'http://t.weather.itboy.net',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  }
});
